package org.nowcoder.huawei.c100;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 3: 攀登者2
 */

public class HC003 {
    // 定义一个函数，计算可攀登的山峰数量
    public static int count_climbable(List<Integer> hill_map, int strength) {
        int hills = 0; // 初始化可攀登的山峰数量为0
        List<Integer> hillsIndex = new ArrayList<>(); // 创建一个列表，用于存储山峰的索引
        int size = hill_map.size(); // 获取山峰地图的大小
// 判断第一个和最后一个是否是山峰
        if (hill_map.get(0) > hill_map.get(1)) {
            hillsIndex.add(0); // 如果是山峰，将其索引添加到列表中
        }
        if (hill_map.get(size - 2) < hill_map.get(size - 1)) {
            hillsIndex.add(size - 1); // 如果是山峰，将其索引添加到列表中
        }
// 遍历山峰地图，找出所有的山峰
        for (int i = 1; i <= size - 2; i++) {
            if (hill_map.get(i) > hill_map.get(i - 1) && hill_map.get(i) > hill_map.get(i + 1)) {
                hillsIndex.add(i); // 如果是山峰，将其索引添加到列表中
            }
        }

// 遍历所有的山峰，计算每个山峰是否可以攀登
        for (int i = 0; i < hillsIndex.size(); i++) {
            int power = 0; // 初始化消耗的力量为0
            boolean right = true; // 初始化是否可以继续向右检查的标志为true
            // 向左检查
            for (int j = hillsIndex.get(i) - 1; j >= 0; j--) {
                power += Math.abs(hill_map.get(j) - hill_map.get(j + 1)) * 3; //计算消耗的力量
                if (hill_map.get(j) == 0) { // 如果遇到山谷
                    if (power < strength) { // 如果消耗的力量小于总力量
                        hills++; // 可攀登的山峰数量加1
                        right = false; // 不再向右检查
                        break; // 跳出循环
                    }
                }
            }
            if (!right) { // 如果不再向右检查
                continue; // 跳过当前循环，进行下一次循环
            }
            power = 0; // 重置消耗的力量为0
            // 向右检查
            for (int j = hillsIndex.get(i) + 1; j < size; j++) {
                power += Math.abs(hill_map.get(j - 1) - hill_map.get(j)) * 3; //计算消耗的力量
                if (hill_map.get(j) == 0) { // 如果遇到山谷
                    if (power < strength) { // 如果消耗的力量小于总力量
                        hills++; // 可攀登的山峰数量加1
                        break; // 跳出循环
                    }
                }
            }
        }
        return hills; // 返回可攀登的山峰数量
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine(); // 从输入流中读取一行数据
        String[] parts = line.split(",");
        List<Integer> hill_map = new ArrayList<>(); // 创建一个列表，用于存储山峰地图
        // 将输入的字符串转换为整数列表
        for (String s : parts) {
            hill_map.add(Integer.parseInt(s)); // 将字符串转换为整数，并添加到列表中
        }
        int strength = scanner.nextInt(); // 从输入流中读取力量值
        // 调用函数，计算可攀登的山峰数量，并输出结果
        System.out.println(count_climbable(hill_map, strength));
        scanner.close();
    }
}
